MATLAB 您所在的位置:网站首页 matlab 旋转坐标 MATLAB

MATLAB

#MATLAB| 来源: 网络整理| 查看: 265

图像旋转

图像的旋转其实矩阵的旋转,而整个矩阵的旋转,则可以看出单个坐标的旋转。也就是说,只有我们知道了单个坐标旋转后的坐标,那么就很好得出旋转之后的图像了。这里我们假定旋转后的图像大小不变哈。

对于看旋转原理,这里可以去看一位大佬写的文章,写的很好,慢慢按着他的方法,就会懂旋转的原理,这里我就不多说了。(写的真的很好!)文章链接

自己写的代码:

function [newimage]=rotate(img,degree) %获取图片信息 注意三通道获取完 即定义三个变量 [m,n,dep]=size(img); %计算出旋转之后,形成一个大矩形的长宽 可以看效果图 rm=round(m*abs(cosd(degree))+n*abs(sind(degree))); rn=round(m*abs(sind(degree))+n*abs(cosd(degree))); %定义一个新矩阵,三通道的,存储新图片的信息 newimage=zeros(rm,rn,dep); %坐标变换 分三步 m1=[1,0,0;0,1,0;-0.5*rm,-0.5*rn,1]; m2=[cosd(degree),sind(degree),0;-sind(degree),cosd(degree),0;0,0,1]; m3=[1,0,0;0,1,0;0.5*m,0.5*n,1]; %利用循环,对每一个像素点进行变换 for i=1:rm for j=1:rn tem=[i j 1]; tem=tem*m1*m2*m3; x=tem(1,1); y=tem(1,2); x=round(x); y=round(y); if(x>0&&x0&&y


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有